///**
// * Date: 2019/2/21
// * Time: 9:27
// * User: Driss.
// *
// * 单循环链表的实现
// */
//public class CicularLinkedList<T> {
//    private Node<T> head;  //头结点
//    private int size;  //链表的长度
//
//    //嵌套类 结点
//    private static class Node<T>{
//        private Node<T> next;
//        private T data;
//
//        public Node(T data,Node<T> next){
//            this.data = data;
//            this.next = next;
//        }
//    }
//
//    //在头结点之后添加一个结点
//    public void add(T data){
//
//        //首先new一个结点
//        Node<T> node = new Node<T>(data, null);
//        if(head == null){
//            head = node;
//            head.next = node;
//            size++;
//        }else{
//            head.next = node;
//            node.next = head.next;
//            size++;
//        }
//
//    }
//
//    //在位置idx处插入结点
//    public void add(int idx,T x){
//        addBefore(getNode(idx),x);
//    }
//
//    //在节点p之前添加数据为x的节点
//    private void addBefore(Node<T> p,T x){
//
//        //先构造一个新结点，其next指针指向p
//        Node<T> newNode = new Node<T>(x,p);
//
//        //然后需要找到结点p的前项
//
//    }
//
//
//    private Node<T> getNode(int idx){
//
//        Node<T> p;
//
//        if(idx < 0 || idx > size())
//            throw new IndexOutOfBoundsException();
//
//        if(idx < size()/2){
//            p = beginMarker.next;
//            for(int i = 0;i < idx;i++)
//                p = p.next;
//        }else{
//            p = endMarker;
//            for(int i = size();i > idx;i--)
//                p = p.prev;
//        }
//
//        return p;
//    }
//
//
//
//    public int size(){
//        return size;
//    }
//
//    public boolean isEmpty(){
//        return size == 0;
//    }
//
//
//}
